using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace QldtSdh.DAL.Models.Mapping
{
    public class NganhDaoTaoMap : EntityTypeConfiguration<NganhDaoTao>
    {
        public NganhDaoTaoMap()
        {
            // Khoá chính
            this.HasKey(t => t.MaNganhDaoTaoGUID);

            // Các cột
            this.Property(t => t.MaNganhDaoTaoGUID)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.TenNganhDaoTao)
                .HasMaxLength(255);

            this.Property(t => t.MaSoNganhDaoTao)
                .HasMaxLength(50);

            this.Property(t => t.MaDonViPhuTrachGUID)
                .HasMaxLength(50);

            this.Property(t => t.MoTa)
                .HasMaxLength(255);

            this.Property(t => t.MaNganhDaoTao)
                .IsRequired()
                .HasMaxLength(50);

            // Ánh xạ Property của POCO vào Column của Table
            this.ToTable("NganhDaoTao");
            this.Property(t => t.MaNganhDaoTaoGUID).HasColumnName("MaNganhDaoTaoGUID");
            this.Property(t => t.TenNganhDaoTao).HasColumnName("TenNganhDaoTao");
            this.Property(t => t.MaDonViPhuTrachGUID).HasColumnName("MaDonViPhuTrachGUID");
            this.Property(t => t.MoTa).HasColumnName("MoTa");
            this.Property(t => t.MaNganhDaoTao).HasColumnName("MaNganhDaoTao");
            // Các quan hệ
            this.HasOptional(t => t.DonVi)
                .WithMany(t => t.ListNganhDaoTao)
                .HasForeignKey(d => d.MaDonViPhuTrachGUID);

        }
    }
}
